| ||
English | Slovak |
Menu: | |||||||||
|
Články o Px Frameworku: PxGreatRepeater - komponenta pre zadávanie dát, ktoré sa svojou štruktúrou opakujú, maximálny počet hodnôt je limitovanýKomponenta PxGreatRepeater slúži na zadávanie dát, ktoré sa svojou štruktúrou cyklicky opakujú. Taký jednoduchý príklad, kde sa dáta opakujú, môžeme nájsť pri osobe, ktorá má telefónne číslo, respektíve môže mať týchto telefónnych čísel viac. Dole je zobrazený ovládací prvok PxGreatRepeater, na zadanie tel. čísla: Samozrejme cez ovládací prvok PxGreatRepeater, môžeme zadať viac telefónnych čísiel, viac obrázok dolu: Tlačítkom plus "+" pridávame nové okienka pre zadanie telefónneho čísla, tlačítkom "-" môžeme mazať už existujúce telefónne čísla. A teraz ako to funguje v praxi. Do tabuľky adresár si doplníme nasledujúce stĺpce:
Tel1 VARCHAR2(50),
Ako vidíte do tabuľky adresár sme zadali položku telefón(tel1, tel2, tel3) tri krát. Teda pri zadávaný telefónneho čísla a jeho poznámky budeme limitovaný, môžeme zadať maximálne tri telefónne čísla, aj s poznámkou. Zadávanie a mazanie, môžeme manažovať tlačítkom plus "+" a tlačítkami mínus "-". Na to aby sme komponentu PxGreatRepeater pripojili ku komponente PxWebQuery, potrebujeme uvaliť parameter AddParamGreatWebQuery na komponentu PxWebQuery. Na to, aby Vám komponenta PxGreatRepeater, správne fungovala musíte uvaliť parameter AddParamGreatWebQuery, na danú komponentu PxWebQuery, ktorá bude zobrazovať alebo pracovať s takto štruktúrovanými dátami. Definícia parametra AddParamGreatWebQuery vyzerá nasledovne:
wquAdresar.AddParamGreatWebQuery("Telefon", "Tel1;Tel_Pozn1", "Tel1 - Tel_Pozn1", 3, "mvNormal");
Popis Parametrov metody AddParamGreatWebQuery: C# syntax: public void AddParamGreatWebQuery(string aFieldName, string aEditAllFieldNames, string aExpresionToView, Int16 aMaxRepeatCount, string aModeToView) Popis parmetrov: aFieldName - Meno stĺpca, ktorý sa vytvorí ako nový stĺpec v tabuľke na ktorý sa aplikuje metóda AddParamGreatWebQuery, a na ktorý sa potom napája komponenta PxGreatRepeater (toto meno stĺpca musí byť jedinečne, v tabuľke nesmie existovať stĺpec s týmto menom). aEditAllFieldNames - Tu sa vypíšu všetky mená stĺpcov, ktoré sa budú editovať v komponente PxGreatRepeater, presne v poradí v akom budú zoradené v komponente PxGreatRepeater. Jednotlivé stĺpce sú oddelené bodkočiarkou. Tieto mená stĺpcov budú pozostávať zo stĺpcov ktoré sa cyklicky opakujú, t.j. Tel1..až..Tel3, a vždycky sa zadá meno stĺpca, ktorý sa začína jednotkou. aExpresionToView - Tu sa vypíšu mená všetkých stĺpcov, ktoré sa majú zobrazovať v Gride. Tieto mena môžu byť medzi sebou oddelene čiarkou alebo pomlčkou, ktoré sa zobrazia pri zobrazený v Gride(PxSuperGrid). aMaxRepeatCount - Touto hodnotou sa stanovuje maximálny počet telefónnych čísel, ktoré je možné zadať prostredníctvom komponenty PxGreatRepeater. Ak sme do databázy prirobili stĺpce tel1, tel2, tel3 potom hodnota tejto premennej bude 3. aModeToView - Týmto reťazcom sa definuje zobrazenie dát v komponente PxSuperGrid, v našom prípade stĺpca zadefinovaného v položke aFieldName. Existujúce módy zobrazenia sú nasledovné: mvBreakHR, mvLineNumber a mvNormal. Pri zadaní reťazca "Tel1 - Tel_Pozn1" do položky ExpresionToView, nastavenom móde zobrazenia mvNormal, bude zobrazenie v komponente PxSuperGrid vyzerať nasledovne: Pri zadaní reťazca "Tel1 - Tel_Pozn1" do položky ExpresionToView, nastavenom móde zobrazenia mvBreakHR, bude zobrazenie v komponente PxSuperGrid vyzerať nasledovne: Pri zadaní reťazca "Tel1 - Tel_Pozn1" do položky ExpresionToView, nastavenom móde zobrazenia mvLineNumber, bude zobrazenie v komponente PxSuperGrid vyzerať nasledovne: Na to aby sme zredukovali počet zobrazených stĺpcov v Gride použijeme property VisibleFields komponenty PxSuperGrid, viac ukážka dole:
grdAdresar.VisibleFields = "name;idpravnaforma;address;miesto;telefon";
Do property VisibleFields sme priradili názvy stĺpcov, oddelených bodkočiarkou, ktoré sa majú zobraziť pri zobrazený v komponente PxSuperGrid-u. Ak v property VisibleFields, nie je priradené žiadna hodnota, v komponente PxSuperGrid-u sa nám zobrazia všetky stĺpce(fields). Samozrejme všetky stĺpce sa nám v komponente PxSuperGrid zobrazia presne v tom poradí, v akom poradí sme ich zadali do property VisibleFields. Property VisibleFields, na to aby správne fungovala, musíme byť definovaná pred pripojením a bindovaním na komponentu PxWebQuery.
grdAdresar.VisibleFields = "name;idpravnaforma;address;miesto;telefon";
Výsledný PxSuperGrid bude vyzerať nasledovne: A tu v ďalšom máte výpis zdrojového kódu súboru Adresar.aspx.cs, pre aplikáciu parametra AddParamGreatWebQuery na komponentu wquAdresar. V príklade sú uvedené zadania dvoch parametrov, a to telefónnu a faxu:
protected void Page_Load(object sender, EventArgs e)
Pokiaľ chceme vo formulári AddAdresar.aspx použiť komponentu PxGreatRepeater na editáciu, tak ju v tomto súbore zadefinujeme nasledovne:
<Prx:PxWebQuery ID="wquAdresar" runat="server" Value="wquAdresar"/>
V súbore AddAdresar.aspx.cs prepojíme komponentu PxGreatRepeater s komponentou wquAdresar, toto prepojenie by malo vyzerať nasledovne:
gtrTelefon.PxDataSource = wquAdresar;
Komponenta PxGreatRepeater nepodporuje zarovnanie a property AddTableRow, TableBegin a TableEnd, ktoré podporujú ostatné komponenty PxEdit apod., a preto treba použiť tág <BR />. Popisky v Gride(Title) a popisky v komponente PxGreatRepeater (Caption), sa dajú definovať centrálne pri definícii komponenty wquAdresar:
wquAdresar.Columns["tel1"].Caption = "Telefón";
Ak sme nastavili všetko tak, ako sme mali, výsledný formulár AddAdresar.aspx, bude vyzerať nasledovne: V komponente PxGreatRepeater sú integrované komponenty PxComboBox, PxFlyComboBox, PxJSDatePicker, a pri uvalený daného parametra (AddParamKey, AddParamWebQuery, AddParamFlyComboBox a pod.)na daný stĺpec v komponente PxWebQuery, sa jednotlivé komponenty automaticky aktivujú v komponente PxGreatRepeater. Viac uvidíte na obrázkoch dole: Tu nájdete funkčný príklad s komponentou PxGreatRepeater, aj so zdrojovými kódmi. Tento funkčný príklad na tomto webe, beží pod databázou MySQL 5.0.
Ďalšie články o Px Frameworku:
Nie je zmyslom, tejto časti webu dopodrobna popisovať prácu s komponentami PxFrameworku, podrobný popis komponent najdete v manuali, ktorý si môžete stiahnuť tu: Download manual pre Px Framework |